css: Don't import CSS too early
authorBenjamin Otte <otte@redhat.com>
Sun, 15 Jan 2012 18:20:34 +0000 (19:20 +0100)
committerBenjamin Otte <otte@redhat.com>
Mon, 16 Jan 2012 17:34:41 +0000 (18:34 +0100)
First, finish parsing the import rule including the semicolon. Then try
to actually import.

test: css/parser/at-invalid-01.css

gtk/gtkcssprovider.c

index 1aef9117fd4d5633fa7a460b44e35df0eb2c69bd..462b551d41349bebdbc62fa51a92c18234deabba 100644 (file)
@@ -1790,7 +1790,12 @@ parse_import (GtkCssScanner *scanner)
       return TRUE;
     }
 
-  if (gtk_css_scanner_would_recurse (scanner, file))
+  if (!_gtk_css_parser_try (scanner->parser, ";", TRUE))
+    {
+      gtk_css_provider_invalid_token (scanner->provider, scanner, "semicolon");
+      _gtk_css_parser_resync (scanner->parser, TRUE, 0);
+    }
+  else if (gtk_css_scanner_would_recurse (scanner, file))
     {
        char *path = g_file_get_path (file);
        gtk_css_provider_error (scanner->provider,
@@ -1810,12 +1815,6 @@ parse_import (GtkCssScanner *scanner)
                                       NULL);
     }
 
-  if (!_gtk_css_parser_try (scanner->parser, ";", TRUE))
-    {
-      gtk_css_provider_invalid_token (scanner->provider, scanner, "semicolon");
-      _gtk_css_parser_resync (scanner->parser, TRUE, 0);
-    }
-
   g_object_unref (file);
 
   gtk_css_scanner_pop_section (scanner, GTK_CSS_SECTION_IMPORT);